<?xml version="1.0" encoding="utf-8"?>
<WITD application="Work item type editor" version="1.0">
  <WORKITEMTYPE name="Quality of Service Requirement">
    <DESCRIPTION>Includes information to track the quality of service requirement through the MSF Agile lifecycle</DESCRIPTION>
    <FIELDS>
      <FIELD type="Integer" name="Id" refname="System.Id" />
      <FIELD type="String" name="Title" refname="System.Title">
        <HELPTEXT>Short description of the quality of service requirement used to differentiate it in a list or report</HELPTEXT>
        <REQUIRED />
      </FIELD>
      <FIELD type="String" name="Assigned To" refname="System.AssignedTo">
        <VALIDUSER />
      </FIELD>
      <FIELD type="History" name="History" refname="System.History">
        <HELPTEXT>Discussion thread and other historical information</HELPTEXT>
      </FIELD>
      <FIELD type="TreePath" name="Area Path" refname="System.AreaPath">
        <HELPTEXT>The area of the product with which this quality of service requirement is associated</HELPTEXT>
      </FIELD>
      <FIELD type="TreePath" name="Iteration Path" refname="System.IterationPath">
        <HELPTEXT>The iteration of the product with which this quality of service requirement is associated</HELPTEXT>
      </FIELD>
      <FIELD type="String" name="State" refname="System.State">
        <HELPTEXT>The workflow state of the quality of service requirement</HELPTEXT>
      </FIELD>
      <FIELD type="String" name="Reason" refname="System.Reason">
        <HELPTEXT>The reason why the quality of service requirement is in the current state</HELPTEXT>
      </FIELD>
      <FIELD type="DateTime" name="Changed Date" refname="System.ChangedDate" />
      <FIELD type="String" name="Changed By" refname="System.ChangedBy">
        <VALIDUSER />
      </FIELD>
      <FIELD type="DateTime" name="Created Date" refname="System.CreatedDate" />
      <FIELD type="String" name="Created By" refname="System.CreatedBy" />
      <FIELD type="PlainText" name="Description" refname="System.Description" />
      <FIELD reportable="dimension" type="String" name="Issue" refname="Microsoft.VSTS.Common.Issue">
        <HELPTEXT>Used to highlight the quality of service requirement, e.g., to mark it as an issue</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES>
          <LISTITEM value="Yes" />
          <LISTITEM value="No" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="No" />
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Exit Criteria" refname="Microsoft.VSTS.Common.ExitCriteria">
        <HELPTEXT>Flag to determine if this quality of service requirement should be tracked as an exit criteria for the iteration</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES>
          <LISTITEM value="Yes" />
          <LISTITEM value="No" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="No" />
      </FIELD>
      <FIELD type="DateTime" name="State Change Date" refname="Microsoft.VSTS.Common.StateChangeDate">
        <WHENCHANGED field="System.State">
          <SERVERDEFAULT from="clock" />
        </WHENCHANGED>
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="DateTime" name="Activated Date" refname="Microsoft.VSTS.Common.ActivatedDate">
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Activated By" refname="Microsoft.VSTS.Common.ActivatedBy">
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="DateTime" name="Resolved Date" refname="Microsoft.VSTS.Common.ResolvedDate">
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Resolved By" refname="Microsoft.VSTS.Common.ResolvedBy">
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="DateTime" name="Closed Date" refname="Microsoft.VSTS.Common.ClosedDate">
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Closed By" refname="Microsoft.VSTS.Common.ClosedBy">
        <WHENNOTCHANGED field="System.State">
          <READONLY />
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Rank" refname="Microsoft.VSTS.Common.Rank">
        <HELPTEXT>Stack rank used to prioritize work</HELPTEXT>
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Quality of Service Type" refname="Microsoft.VSTS.Common.QualityOfServiceType">
        <HELPTEXT>The type of quality of service</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES>
          <LISTITEM value="Performance" />
          <LISTITEM value="Security" />
          <LISTITEM value="Stress" />
          <LISTITEM value="Load" />
          <LISTITEM value="Platform" />
          <LISTITEM value="Other" />
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD reportable="dimension" type="String" name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild">
        <HELPTEXT>The build in which the quality of service requirement was achieved</HELPTEXT>
        <SUGGESTEDVALUES>
          <LISTITEM value="&lt;None&gt;" />
        </SUGGESTEDVALUES>
      </FIELD>
      <FIELD reportable="dimension" type="Integer" name="Rough Order of Magnitude" refname="Microsoft.VSTS.Common.RoughOrderOfMagnitude">
        <HELPTEXT>A rough estimate of the cost of the work item based on its technical complexity</HELPTEXT>
        <ALLOWEDVALUES>
          <LISTITEM value="0" />
          <LISTITEM value="1" />
          <LISTITEM value="2" />
          <LISTITEM value="3" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="1" />
      </FIELD>
      <FIELD reportable="dimension" type="DateTime" name="Start Date" refname="Microsoft.VSTS.Scheduling.StartDate">
        <HELPTEXT>The start date of the iteration in which the work item is assigned</HELPTEXT>
      </FIELD>
      <FIELD reportable="dimension" type="DateTime" name="Finish Date" refname="Microsoft.VSTS.Scheduling.FinishDate">
        <HELPTEXT>The finish date of the iteration in which the work item is assigned</HELPTEXT>
      </FIELD>
    </FIELDS>
    <WORKFLOW>
      <STATES>
        <STATE value="Active">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <EMPTY />
            </FIELD>
          </FIELDS>
        </STATE>
        <STATE value="Resolved">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <EMPTY />
            </FIELD>
          </FIELDS>
        </STATE>
        <STATE value="Closed" />
      </STATES>
      <TRANSITIONS>
        <TRANSITION from="" to="Active">
          <REASONS>
            <DEFAULTREASON value="New" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser" />
              <VALIDUSER />
              <REQUIRED />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <DEFAULT from="currentuser" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Active" to="Resolved">
          <REASONS>
            <REASON value="Deferred" />
            <REASON value="Removed" />
            <DEFAULTREASON value="Completed" />
          </REASONS>
          <FIELDS>
            <FIELD refname="System.AssignedTo">
              <COPY from="field" field="System.CreatedBy" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <READONLY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <READONLY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <COPY from="currentuser" />
              <VALIDUSER />
              <REQUIRED />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Resolved" to="Active">
          <REASONS>
            <DEFAULTREASON value="Test Failed" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser" />
              <VALIDUSER />
              <REQUIRED />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <COPY from="field" field="Microsoft.VSTS.Common.ResolvedBy" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Resolved" to="Closed">
          <REASONS>
            <REASON value="Deferred" />
            <REASON value="Removed" />
            <DEFAULTREASON value="Completed" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <READONLY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <READONLY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <READONLY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <READONLY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <COPY from="currentuser" />
              <VALIDUSER />
              <REQUIRED />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Closed" to="Active">
          <REASONS>
            <DEFAULTREASON value="Reactivated" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser" />
              <VALIDUSER />
              <REQUIRED />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <COPY from="field" field="Microsoft.VSTS.Common.ResolvedBy" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>
    <FORM>
      <Layout>
        <Group>
          <Column PercentWidth="70">
            <Control FieldName="System.Title" Type="FieldControl" Label="&amp;Title:" LabelPosition="Left" />
          </Column>
          <Column PercentWidth="30">
            <Control FieldName="Microsoft.VSTS.Common.QualityOfServiceType" Type="FieldControl" Label="T&amp;ype:" LabelPosition="Left" />
          </Column>
        </Group>
        <Group Label="Classification">
          <Column PercentWidth="100">
            <Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&amp;Area:" LabelPosition="Left" />
            <Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="&amp;Iteration:" LabelPosition="Left" />
          </Column>
        </Group>
        <Group Label="Status">
          <Column PercentWidth="50">
            <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&amp;gned to:" LabelPosition="Left" />
            <Control FieldName="Microsoft.VSTS.Common.Rank" Type="FieldControl" Label="Ran&amp;k:" LabelPosition="Left" NumberFormat="WholeNumbers" MaxLength="10" />
          </Column>
          <Column PercentWidth="50">
            <Control FieldName="System.State" Type="FieldControl" Label="&amp;State:" LabelPosition="Left" />
            <Control FieldName="System.Reason" Type="FieldControl" Label="&amp;Reason:" LabelPosition="Left" />
          </Column>
        </Group>
        <TabGroup>
          <Tab Label="Description">
            <Control FieldName="System.Description" Type="HtmlFieldControl" Label="Des&amp;cription:" LabelPosition="Top" Dock="Fill" />
          </Tab>
          <Tab Label="History">
            <Control FieldName="System.History" Type="WorkItemLogControl" Label="&amp;History:" LabelPosition="Top" Dock="Fill" />
          </Tab>
          <Tab Label="Links">
            <Control Type="LinksControl" LabelPosition="Top" />
          </Tab>
          <Tab Label="File Attachments">
            <Control Type="AttachmentsControl" LabelPosition="Top" />
          </Tab>
          <Tab Label="Details">
            <Group>
              <Column PercentWidth="50">
                <Group Label="General">
                  <Column PercentWidth="100">
                    <Control FieldName="Microsoft.VSTS.Common.Issue" Type="FieldControl" Label="Iss&amp;ue:" LabelPosition="Left" />
                    <Control FieldName="Microsoft.VSTS.Common.ExitCriteria" Type="FieldControl" Label="E&amp;xit criteria:" LabelPosition="Left" />
                    <Control FieldName="Microsoft.VSTS.Build.IntegrationBuild" Type="FieldControl" Label="Integration &amp;build:" LabelPosition="Left" />
                  </Column>
                </Group>
              </Column>
              <Column PercentWidth="50">
                <Group Label="Schedule">
                  <Column PercentWidth="100">
                    <Control FieldName="Microsoft.VSTS.Common.RoughOrderOfMagnitude" Type="FieldControl" Label="Rough &amp;Order of Magnitude:" LabelPosition="Left" NumberFormat="WholeNumbers" MaxLength="10" />
                    <Control FieldName="Microsoft.VSTS.Scheduling.StartDate" Type="FieldControl" Label="Start Dat&amp;e:" LabelPosition="Left" ReadOnly="True" />
                    <Control FieldName="Microsoft.VSTS.Scheduling.FinishDate" Type="FieldControl" Label="&amp;Finish Date:" LabelPosition="Left" ReadOnly="True" />
                  </Column>
                </Group>
              </Column>
            </Group>
          </Tab>
        </TabGroup>
      </Layout>
    </FORM>
  </WORKITEMTYPE>
</WITD>